package protect.week07;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
 * @author thinkpad - 83start
 * @version v1.0
 * @create 2022/10/19 20:32
 * @package protect.week07
 * @description 第三大的数
 * 给你一个非空数组，返回此数组中 第三大的数 。如果不存在，则返回数组中最大的数。
 *
 *  
 *
 * 示例 1：
 *
 * 输入：[3, 2, 1]
 * 输出：1
 * 解释：第三大的数是 1 。
 * 示例 2：
 *
 * 输入：[1, 2]
 * 输出：2
 * 解释：第三大的数不存在, 所以返回最大的数 2 。
 * 示例 3：
 *
 * 输入：[2, 2, 3, 1]
 * 输出：1
 * 解释：注意，要求返回第三大的数，是指在所有不同数字中排第三大的数。
 * 此例中存在两个值为 2 的数，它们都排第二。在所有不同数字中排第三大的数为 1 。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/third-maximum-number
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */

public class Ch03_ThirdMax {

    public int thirdMax(int[] nums) {

        // 去重
        ArrayList<Integer> numList = new ArrayList<>();

        for (int num : nums) {
            if (!numList.contains(num)){
                numList.add(num);
            }
        }
        // 排序
        Collections.sort(numList,Collections.reverseOrder());


       if (numList.size() <3){
           return numList.get(0);
       }

        return numList.get(2);
    }

    public static void main(String[] args) {
        System.out.println(new Ch03_ThirdMax().thirdMax(new int[]{3,1}));
    }

}
